import java.util.Date;

import org.apache.commons.pool.PoolableObjectFactory;


public class BigObjectFactory implements PoolableObjectFactory<BigObject> {

	
	/**
	 * 创建
	 * 这个方法用于在必要时产生新的对象。
	 */
	@Override
	public BigObject makeObject() throws Exception {
		System.out.println("makeObject");
		return new BigObject(System.currentTimeMillis());
	}
	
	/**
	 * 激活
	 * 这个方法用于将对象“激活”――设置为适合开始使用的状态。
	 */
	@Override
	public void activateObject(BigObject obj) throws Exception {
		System.out.println("activateObject");
	}

	

	/**
	 * 挂起
	 * 这个方法用于将对象“挂起”――设置为适合开始休眠的状态。
	 */
	@Override
	public void passivateObject(BigObject obj) throws Exception {
		System.out.println("passivateObject");
	}

	/**
	 * 校验
	 * 这个方法用于校验一个具体的对象是否仍然有效，已失效的对象会被自动交给destroyObject方法销毁  
	 */
	@Override
	public boolean validateObject(BigObject obj) {
		System.out.println("validateObject");
		return true;
	}
	
	
	/**
	 * 销毁
	 * 这个方法用于销毁被validateObject判定为已失效的对象。  
	 * 或 超过maxSleep数的sleep对象
	 */
	@Override
	public void destroyObject(BigObject obj) throws Exception {
		System.out.println("destroyObject");
	}

}
